package com.jelly.string;

/**
 * String对象是<font color="red">不可变的</font><br>
 * String类中的每个看起来会修改String值的方法实际上 都是创建了一个全新的 String对象
 * 以包含修改后的字符串内容。而最初的String对象则丝毫未动
 * 
 * @author Jelly
 * 
 */
public class Immutable {
	public static String upcase(String s) {
		return s.toUpperCase();
	}
	
	public static void main(String[] args) {
		String q="howdy";
		System.out.println(q);
		/*
		 * 把q传给upcase()方法时，实际传递的是引用的一个拷贝。其实，每当把String对象作为方法的参数时，都会复制一份引用，而该
		       引用所指的对象其实一直待在单一的物理位置上，从未动过.
		*/
		String qq=upcase(q);
		System.out.println(qq);
		System.out.println(q);
	   qq=change(q);
		
		System.out.println(qq);
		System.out.println(q);
	}
	
	public static String change(String s){
		return s="00";
	}
}
